package demo_0408;

import java.util.Scanner;
import java.util.Stack;

public class T2 {
    //链接：https://www.nowcoder.com/practice/8d3643ec29654cf8908b5cf3a0479fd5?tpId=308&tqId=40462&ru=/exam/oj

    /*描述
    //牛牛拿到了一个字符串。
    //他每次“点击”，可以把字符串中相邻两个相同字母消除，例如，字符串"abbc"点击后可以生成"ac"。
    //但相同而不相邻、不相同的相邻字母都是不可以被消除的。
    //牛牛想把字符串变得尽可能短。他想知道，当他点击了足够多次之后，字符串的最终形态是什么？
    //输入描述：
    //一个字符串，仅由小写字母组成。（字符串长度不大于300000）
    //输出描述：
    //一个字符串，为“点击消除”后的最终形态。若最终的字符串为空串，则输出0。
    */


    //StringBuilder
    public static void main1(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String string = in.nextLine();
            StringBuilder stringBuilder = new StringBuilder();
            int index = -1;
            for (int i = 0; i < string.length(); i++) {
                char ret = string.charAt(i);
                if (index == -1 || ret != stringBuilder.charAt(index)) {
                    stringBuilder.append(ret);
                    index++;
                } else {
                    stringBuilder.deleteCharAt(index);
                    index--;
                }
            }

            if (index == -1) {
                System.out.println(0);
            } else {
                System.out.println(stringBuilder);
            }
        }
    }

    //栈
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String string = in.nextLine();
            Stack<Character> stack = new Stack<>();
            int i = 0;
            while (i < string.length()) {
                char ret = string.charAt(i);
                if (stack.isEmpty() || ret != stack.peek()) {
                    stack.push(ret);
                } else {
                    stack.pop();
                }
                i++;
            }

            if (stack.isEmpty()) {
                System.out.println(0);
            } else {
               for (char ret : stack) {
                   System.out.print(ret);
               }
            }
        }
    }
}
